1. Field of the Invention
This invention relates to computer systems and, more particularly, to image-based provisioning of computer systems.
2. Description of the Related Art
Many business organizations and governmental entities rely upon large data centers, including hundreds or thousands of individual computer hosts or servers to provide support for complex mission-critical applications. The collection of computer hosts within a data center may be heterogeneous in nature, including many different types of hosts from many different manufacturers, supporting different operating systems and a variety of hardware devices such as disks, network cards, and the like from different hardware vendors. In addition to the application servers at the data centers, an information technology (IT) department may also need to support a large number of workstations (such as desktop and/or laptop computer systems) and supporting servers (such as email servers, web servers) for use by the employees of the organization.
As the computing needs of an organization grow, more and more processing power may need to be deployed. The process of allocating additional resources such as new computer hosts, additional storage, additional networking bandwidth etc. in response to growing needs within an organization may be termed “provisioning”. Configuring individual new hosts manually would be increasingly difficult, expensive and error-prone as the environment scaled in size and complexity. Therefore, in some IT organizations, specialized provisioning tools may be used to ensure a desired degree of consistency when configuring newly allocated hosts.
A provisioning tool may, for example, allow an administrator to install a desired version of an operating system and a desired set of application software on a source computer host, and to create a disk image (i.e., a copy) of the system disk of the source computer host for use in installing newly provisioned hosts. The disk image may then be written to a system disk at each newly provisioned host, so that all newly provisioned hosts are deployed with a common operating system version and common application software. Such a provisioning technique of using a disk image to install software at a host, instead of installing a newly provisioned host manually from installation CDs or other removable media, may be termed image-based provisioning. Image-based provisioning may provide several advantages over more traditional provisioning or installation techniques, including a reduction in total installation time, better support for automation and a corresponding reduction in the probability of human errors. In many cases a standard set of disk images for image-based provisioning may be created, e.g., a set including one disk image corresponding to each operating system in use within a data center, and employed repeatedly as new hosts are provisioned.
In some cases, the disk images created for use in image-based provisioning may not include all the software (e.g., device drivers) needed to operate some of the hardware devices included within a newly provisioned or as-yet uninstalled host. For example, a newly acquired host may have been equipped by its manufacturer with a faster and/or cheaper disk or network interface card than was included within the source host from which a disk image for image-based provisioning was created. A device driver for the new hardware device may not have been available when the disk image was created. A particular hardware device for which an additional software driver (i.e., a driver not included within the original disk image) is needed may sometimes be utilized during a bootstrap or boot process at the host: that is, the host may not even be bootable without the additional driver in such cases. It may therefore be desirable to implement a technique that allows additional software to be inserted into a previously created disk image, prior to a boot and/or installation of the newly provisioned host using the disk image. In addition, it may also be desirable to automate the insertion of system setup information (e.g., a host name, a time zone identification etc.) into the previously created disk image, allowing the newly provisioned host to be customized and made operational with minimal manual intervention.